package org.sgx.gapi.client.apis.youtube;

import org.sgx.gapi.client.client.GAPIBase;

import com.google.gwt.core.client.JavaScriptObject;

/**
 * The id object contains information that can be used to uniquely identify the resource that matches the search request.
 * 
 * @see https://developers.google.com/youtube/v3/docs/search#resource
 * @author sg
 * 
 */
public class SearchId extends GAPIBase {
	protected SearchId() {
	}

	public static final native SearchId create()/*-{
		return {};
	}-*/;

	// /**
	// * The kind, or type, of the referred resource.
	// * @return
	// */
	// public native final String kind() /*-{
	// return this["kind"];
	// }-*/;
	//
	// /**
	// * The kind, or type, of the referred resource.
	// * @param val
	// * @return this - for setter chaining
	// */
	// public native final SearchId kind(String val) /*-{
	// this["kind"] = val;
	// return this;
	// }-*/;
	/**
	 * If the id.type property's value is youtube#video, then this property will be present and its value will contain the ID that YouTube uses to uniquely identify a video that
	 * matches the search query.
	 * 
	 * @return
	 */
	public native final String videoId() /*-{
		return this["videoId"];
	}-*/;

	/**
	 * If the id.type property's value is youtube#video, then this property will be present and its value will contain the ID that YouTube uses to uniquely identify a video that
	 * matches the search query.
	 * 
	 * @param val
	 * @return this - for setter chaining
	 */
	public native final SearchId videoId(String val) /*-{
		this["videoId"] = val;
		return this;
	}-*/;

	/**
	 * If the id.type property's value is youtube#channel, then this property will be present and its value will contain the ID that YouTube uses to uniquely identify a channel
	 * that matches the search query.
	 * 
	 * @return
	 */
	public native final String channelId() /*-{
		return this["channelId"];
	}-*/;

	/**
	 * If the id.type property's value is youtube#channel, then this property will be present and its value will contain the ID that YouTube uses to uniquely identify a channel
	 * that matches the search query.
	 * 
	 * @param val
	 * @return this - for setter chaining
	 */
	public native final SearchId channelId(String val) /*-{
		this["channelId"] = val;
		return this;
	}-*/;

	/**
	 * If the id.type property's value is youtube#playlist, then this property will be present and its value will contain the ID that YouTube uses to uniquely identify a playlist
	 * that matches the search query.
	 * 
	 * @return
	 */
	public native final String playlistId() /*-{
		return this["playlistId"];
	}-*/;

	/**
	 * If the id.type property's value is youtube#playlist, then this property will be present and its value will contain the ID that YouTube uses to uniquely identify a playlist
	 * that matches the search query.
	 * 
	 * @param val
	 * @return this - for setter chaining
	 */
	public native final SearchId playlistId(String val) /*-{
		this["playlistId"] = val;
		return this;
	}-*/;

}
